vb.net - 将整数值转换为小数值(十进制)
问题描述
寻找一种不使用字符串将正数(整数)从例如 123 转换为 0.123 的方法。可以是任意大小的整数。不关心负值。
Dim value As Integer = 123
Dim num As Decimal = "." & value.ToString
这看起来很简单,但我不确定如何使用数学来做到这一点。如何在不使用字符串的情况下进行转换?
解决方案
您可以使用 获取位数Log10
。我认为最好的方法是:
Dim value = 123 'Or whatever other value
Dim digitCount = Math.Floor(Math.Log10(Math.Abs(value))) + 1
Dim result = value * CDec(10 ^ (-digitCount))
您需要使用Floor
而不是Ceiling
为了获得 0、10、100 等的正确结果。
推荐阅读
- colors - 改变 aplha 颜色时失去头发容量
- excel - 如何在 SharePoint 网络上附加活动 Excel 工作表的 PDF 副本?
- c# - 如何将 Unity 的 Debug.Log 打印到屏幕/GUI?
- python-3.x - 我们如何减少下面给出的 face_recognition python 脚本的响应时间?
- php - PHP在数据库中验证是否存在重复
- javascript - 状态未在 React 中使用 set state menthod 更新
- android - 在芯片视图内添加一个圆形进度图标
- flutter - 如何在颤动中重叠视频文件上的文本或图像
- android - 如何使用导航组件创建固定快捷方式?
- snowflake-cloud-data-platform - 雪花日期范围查询历史数据并添加增量