C++Builder中除Edit外还有用来输入数字的控件吗?输入Edit任意小数后转换输出,但位数不跟着变,精度差。
2个回答
展开全部
楼上正解...
一般做这种控件,
最好绑定2个值, 一个UI 显示值, 一个 你存储的实际值.
不管UI接口或者什么的调整显示格式,或者改变输入值, 存储值永远存储数值.
显示值按照你自己需要去按照精度或者格式显示.
一般做这种控件,
最好绑定2个值, 一个UI 显示值, 一个 你存储的实际值.
不管UI接口或者什么的调整显示格式,或者改变输入值, 存储值永远存储数值.
显示值按照你自己需要去按照精度或者格式显示.
追问
我知道用Format ,可以控制输出位数。请问怎样通过判断输入小数的位数,来决定输出小数的位数。比如,做计算器,当计算3.4*4.56时,最后输出2位小数。而当计算3.1*2.1时,只输出1位小数。
追答
有很多方法可以判断你的输入是几位小数啊。
最简单,在用户输入时计数,碰到小数点就统计后面小数为,取最大数(你的逻辑……)
个人觉得*/结果精度都要变得吧?!
制定好自己的规则,管那么多干嘛?!
反正你没几个用户。。。
展开全部
精度不应该通过界面控件来控制,你应该在代码中处理浮点数,并转换成字符串再输出的Edit,这样精度和显示位数就由你自己控制了。
追问
我知道用Format ,可以控制输出位数。请问怎样通过判断输入小数的位数,来决定输出小数的位数。比如,3.4*4.56,最后输入2位小数。而3.1*2.1时,只输出1位小数。
追答
这样的需求,最好在输入端就用字符串接收(保障位数的准确性),之后:
通过Find之类的函数,确定小数点的位置,并获取字符串的长度,就可知精度。
转换为浮点数后运算,运算后再转换为字符串,这个可以用Format来控制显示精度了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询