作者cuteman0725 (发呆)
看板Programming
标题Re: [问题] C# 如何取得 double 型态的小数位数?
时间Sat May 10 00:48:11 2008
以上恕删~~
※ 引述《xam (听说)》之铭言:
: 一开始还有 double x = getDouble()
: 但是 double getDouble(); 不可能会有时候回传 51.0 , 有时候回传 51.00
: 我猜应该是要传字串形式的浮点数
: 如果这样的话只要判断字串长度跟小数点的位置就好了
: 如果不是的话, 那就....
谢谢大大的帮忙,我想也许是我表达清楚的不够清楚,不好意思。
实际上是这样子的,目前我使用了一个元件
(元件名称:SpreadSheetGear 是一个模拟 EXCEL 的元件,是客户要求的)
我在真正的 EXCEL 上写了 VBA 的自定函式,但是因为该元件的限制没办法直接去
读取 EXCEL的 VBA并传回值,所以只能在 C# 上写一个同样名称的函式取代。
不过 EXCEL VBA 的行为和 C# 的确还是有差别~~
比方说,我之前写了一个 VBA 自订函式﹙但类似的函式有几十种,规则也都不同﹚
每个规则的小位数会随着数字大小改变
﹙规则1: <1 时 显示固定为小数5位, <5 时 显示固定为小数4位,<10时....﹚
﹙规则2: <3 时 显示固定为小数5位, <8 时 显示固定为小数4位,<13时....﹚
以上的规则大约有数十种,每个都不同~~
我只是很单纯的不想再用 C# 去重写一堆VBA的函式﹙否则未来程式的维护会很麻烦﹚
所以想想看有没有不用重写 Code的方式。
结果读到 EXCEL 传回 51.0时,真正的 EXCEL 就显示 51.0,反而是在模拟的元件
上显示51,感觉就会比较怪。
後来因为赶着交给客户,还是花了几个钟头将 VBA 的程式重新转成了 C# Code了。
不过规则有80几条,以後的维护就... :p﹚
﹙Sorry, 因为重写 Code 太麻烦了,所以问了这个让人觉得比较龟毛的问题 >.< ﹚
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.67.39.218