| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Ф-ия sqrt |
| Автор: rthsobakas 6.11.2008, 21:37 | ||
мне надо в переменную типа int записать значение sqrt
но на строчке с double выдается ошибка project raised exception class EInvalidOp with message 'Invalid floating point operation' То есть че то с типами, помогите разобраться. |
| Автор: mes 6.11.2008, 22:11 |
| Sqrt генерирует EInvalidOp исключение, когда аргумент отрицательный |
| Автор: Great Cornholio 7.11.2008, 16:43 |
О_О, там же сумма квадратов!)) как так?)) |
| Автор: YanTsys 7.11.2008, 17:26 |
| Какой тип у переменных x1 x0 y1 y0 и какие значения присвоены этим переменным перед вылетом ошибки? |
| Автор: Great Cornholio 7.11.2008, 17:32 | ||
кста, тупо конечно, но попробуй:
|
| Автор: fronya 8.11.2008, 18:32 | ||
| А может нужно все-таки написать Sqrt не с большой буквы У меня лично все прекрасно работает:
Или у тя в другом проблема.... ( и проверь типы данных, может там не состыковочка вышла) |
| Автор: volvo877 8.11.2008, 19:13 |
| Еще бы... У тебя вообще ни одного отрицательного множителя не присутствует... Или ты все еще думаешь, что x1 будет меньше, чем x0 ??? |
| Автор: de_Nis 9.11.2008, 09:04 |
| fronya, странно, что приведенный в сообщении код вообще работает: x1=0,2; (в третьей строке) содержит в качестве десятичного разделителя запятую, а не точку. Или для C++ Builder это не имеет значения? |
| Автор: Alexeis 9.11.2008, 16:15 |
| И еще одно предположение, по скольку сумма квадратов не может быть отрицательной, может быть переполнение инта как аргумента функции. Если он больше 2х Млрд то число станет отрицательным и функция попытается вычислить корень отрицательного числа. |
| Автор: rthsobakas 9.11.2008, 17:03 |
| мда, вообщем там не double , а float тип должен был стоять(хотя в хелпе дубл написан). |
| Автор: Great Cornholio 11.11.2008, 10:47 |
| а не sqrtl ли? кстати)) непомню чем точно различаются, но l - long |
| Автор: YanTsys 11.11.2008, 13:21 | ||
Так же подумал, поэтому и хочется узнать при каких значениях x1 x0 y1 y0 программа выдает ошибку |