- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 StrToFloat
例程时遇到问题。我在 Windows Vista 上运行 Delphi 7,区域格式设置为德语(奥地利)
如果我运行以下代码 -
DecimalSeparator:='.';
anum:=StrToFloat('50.1123');
edt2.Text:=FloatToStr(anum);
当我将字符串转换为 float 时,anum
变为 50,1123,当我将其转换回字符串时,它变为“50.1123”
如何才能在将字符串转换为 float 时,数字以小数点而不是逗号作为小数分隔符出现。
谢谢
科林
最佳答案
您必须了解 float 与其文本表示形式(即字符串)之间的区别。
float 通常存储在计算机中(例如 Delphi float
变量),没有小数点分隔符。只有它的文本表示才可以。如果IDE显示anum
如“50,1123”,这仅意味着 IDE 在创建 IDE 内数字的文本表示形式时使用计算机的本地区域设置。
在计算机内存中,值“50.1123”(或者,如果您愿意,可以使用“50,1123”)仅使用 1 和 0 进行存储。在十六进制表示法中,该数字存储为 9F AB AD D8 5F 0E 49 40
并且不包含有关如何显示的信息。这不像你可以拿起放大镜并将其指向 RAM 模块来找到一个微小的字符串“50.1123”(或“50,1123”)。
当然,当你想向用户显示号码时,你可以使用 FloatToStr
它获取该数字并从中创建一个字符串。结果可以是“50.1123”或“50,1123”,或其他值。 (在内存中,这些字符串分别是 35 30 2C 31 31 32 33
和 35 30 2E 31 31 32 33
(ASCII)。)
关于delphi - Strtofloat/Floattostr 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9342879/
使用DEFAULT FloatToStr函数 FloatToStr('0.0000442615029219009') 输出 4.42615029219009E-5 小数点后去掉一个零 FloatToS
我刚刚在文档中发现 FloatToStr 和 DateToStr 在其单参数重载中不是线程安全的。原因是它们访问存储在全局变量中的本地化信息。 我的问题是:如果我不在运行时更改格式设置,这有任何实际意
我在使用 StrToFloat 例程时遇到问题。我在 Windows Vista 上运行 Delphi 7,区域格式设置为德语(奥地利) 如果我运行以下代码 - DecimalSeparator:='
我使用 FloatToStr() 但它有错误!我给你看我的源代码。 void __fastcall TForm1::FormCreate(TObject *Sender) { float i=3.14
再次出现Delphi中的转换问题。我已经经历过其他一些涉及类似问题的主题,但似乎没有任何效果。我想要做的是将computetd解决方案(扩展格式)简单地转换为字符串,然后将其显示在TMemo中。我尝试
目前,我将 DecimalSeparator 设置为“.”在使用这些函数的每个过程中。 在程序开始时进行全局设置会容易得多,但我发现 Delphi 似乎会定期将其设置回当前区域设置。 我需要确保所有转
我正在使用 Delphi 7,现在 FloatToStr(64)返回 64,0000017441 在使用 Direct3D 代码的同一进程中加载不同的模块时。 返回值为 64 正如预期的那样,当另
我是一名优秀的程序员,十分优秀!