|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.07.2017, 09:16 | #1 |
Регистрация: 28.01.2013
Сообщений: 6
|
не понятная точность TFloatField
связка delphi + ado + msaccess
выражение: MaterialKol.Value:=MaterialKol.Valu e+(Znak*DetRashKol.Value); значение перед выражением: MaterialKol.Value = 9.3 Znak=-1 DetRashKol.Value=10.25 после расчета 9,3+(-1*10,25) должно быть -0,95 а у меня получается -0,949999999999999 |
06.07.2017, 09:27 | #2 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 751
|
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Последний раз редактировалось Cuprum5; 06.07.2017 в 09:41. |
06.07.2017, 12:03 | #3 |
Регистрация: 28.01.2013
Сообщений: 6
|
MaterialKol.Value и DetRashKol.Value : TFloatField
т.е. тип double поля Сделал так: var znak,z1,z2: double; в программе: z1:=MaterialKol.Value; z2:=DetRashKol.Value; z1:=z1+znak*z2; MaterialKol.Value:=z1; в этом месте в отладчике смотрим значения: MaterialKol.Value = -0.95 а вот MaterialKol.asString = '-0,949999999999999' после окончания расчета в access смотрю:-0,949999999999999 |
06.07.2017, 12:08 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
06.07.2017, 12:13 | #5 |
Регистрация: 28.01.2013
Сообщений: 6
|
или может всё к extended привести?
Serge_Bliznykov быстрее меня печатает. как удалить ответ - не знаю. Последний раз редактировалось dima_reg; 06.07.2017 в 12:41. |
06.07.2017, 12:19 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Сделай, допустим, в таблице поле двойное с плавающей точкой и фиксированным форматом и нужным количеством знаков после десятичного разделителя. Провайдер сам позаботится об округлении и отбрасывании лишнего. Только не помню какой там тип поля ado вернет в делфи, возможно TBCDField, а может и TFloatField останется
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 06.07.2017 в 12:23. |
06.07.2017, 12:36 | #7 | |
Регистрация: 28.01.2013
Сообщений: 6
|
Цитата:
Просто ситуация реально не понятная. В таблице 2000 записей. и только 2 из них работают с такими траблами. Со всеми остальными - всё ОК. Придется помнить и постоянно округлять принудительно. |
|
11.10.2017, 12:17 | #9 |
Форумчанин
Регистрация: 02.03.2013
Сообщений: 109
|
Почитайте книжку "О чём не пишут в книга по Delphi" Антона Григорьева, там всё есть.
|
11.10.2017, 12:46 | #10 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
Используйте денежный формат и будет вам счастье...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не понятная ошибка | kkep | Microsoft Office Access | 11 | 01.09.2016 15:53 |
не понятная кодировка | skotsaga | PHP | 4 | 08.01.2012 21:15 |
не понятная фигн | TotKtoNado | Общие вопросы Delphi | 0 | 01.07.2011 17:25 |
Не понятная задача | mitax | Microsoft Office Excel | 2 | 17.12.2010 17:19 |
не понятная ошибка | ManInBlack | Помощь студентам | 2 | 20.10.2008 23:33 |