Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >小数乘法除法

小数乘法除法
EN

Stack Overflow用户
提问于 2014-03-26 23:10:31
回答 5查看 5.6K关注 0票数 5

我是C#的新手,现在在数学方面有个问题。为什么我不能像这样仔细考虑或划分“简单”:

代码语言:javascript
运行
AI代码解释
复制
 decimal mLon1 = 0;
 decimal mLat1 = 0;
 decimal mFactor = 111021;
 decimal mRadius = 100;
 decimal mLat = 12.123;

 mLon1 = mLon - mRadius / Math.Abs(Math.Cos(((Math.PI / 180) * mLat)) * mFaktor);
 mLat1 = mLat - (mRadius / mFaktor);

编译器显示一个错误:

运算符“*”不能应用于“双”和“十进制”类型的操作数。

操作员也是如此..。

我怎样才能使我的代码工作?任何暗示都行。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-03-26 23:13:37

尝试下面的代码,您在"mFaktor“(应该是"mFactor”)附近有拼写错误

代码语言:javascript
运行
AI代码解释
复制
decimal mLon1 = 0;
decimal mLat1 = 0;
decimal mFactor = 111021;
decimal mRadius = 100;
decimal mLat = (decimal)12.123;
decimal mLon = 0;
mLon1 = mLon - mRadius / (decimal)Math.Abs(Math.Cos(((Math.PI / 180) * (double)mLat)) * (double)mFactor);
mLat1 = mLat - (mRadius / mFactor);
票数 0
EN

Stack Overflow用户

发布于 2014-03-26 23:48:55

C#是一种类型安全的语言,我所说的类型安全是指代码允许开发人员确定某个值或对象将是某种类型,这样他/她就可以以一种特定的方式使用它,而不必担心意外或未定义的行为。C#只隐式类型转换(如int到double )

更改代码,如下所示

代码语言:javascript
运行
AI代码解释
复制
decimal mLon1 = 0M;
decimal mLat1 = 0M;
decimal mFactor = 111021M;//mFactor is never used
decimal mRadius = 100M;
decimal mLat = 12.123M;

mLon1 = mLon - mRadius / Math.Abs(Convert.ToDecimal(Math.Cos((Math.PI / 180) * Convert.ToDouble(mLat))) * mFaktor);//mFaktor and mLon is not defined
mLat1 = mLat - (mRadius / mFaktor);

在这里,Convert.ToDouble(mLat)mLat转换为double,因为C#不允许将decimal隐式转换为double,我为什么要这样做?Math.Cos显然只接受doubleMath.Abs的情况也是如此

另一个解决方法是,您可以将每个声明的变量转换为double,并在之间减少显式类型转换的痛苦。

代码语言:javascript
运行
AI代码解释
复制
double mLon1 = 0D;
double mLat1 = 0D;
double mFactor = 111021D;//mFactor is never used
double mRadius = 100D;
double mLat = 12.123D;

mLon1 = mLon - mRadius / Math.Abs(Math.Cos(((Math.PI / 180D) * mLat)) * mFaktor);//mFaktor and mLon is not defined
mLat1 = mLat - (mRadius / mFaktor);

请参阅下面提到的引用,以及您希望在当前的场景中使用的类型。

参考资料:MSDN

票数 4
EN

Stack Overflow用户

发布于 2014-03-26 23:15:24

对于这种用法,您不应该使用十进制类型。使用双重类型,一切都会好起来的。

在您的示例中,数学函数返回一个双精度浮点(64位)数字,而十进制类型是128位浮点非本地数据类型。

你不能直接乘以两个没有相同内存大小的数字。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22680600

复制
相关文章
javascript(js)的小数点乘法除法问题
js在处理小数的乘除法的时候有一个bug,解决的方法可以是:将小数变为整数来处理。
Java架构师必看
2021/03/22
4.5K0
Mysql 乘法除法精度不一致,除法后四位小数
今天在写项目功能的时候,有一个统计金额的情况,然后需要进行单位转换,所以写下了大概如下功能的语句,但得到的数据为小数点后4位精度,正常我们只需要2位就足够。
宣言言言
2020/03/09
3.8K0
LeetCode 166. 分数到小数(小数除法)
给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。
Michael阿明
2020/07/13
1.4K0
LeetCode 166. 分数到小数(小数除法)
Java除法运算(保留小数)
编程的人都知道,java中的“/”、“%”运算,其中前者为取整,后者取余数。那么有没有快捷的运算方法取正常的运算结果呢?
全栈程序员站长
2022/08/18
2.9K0
java 除法取商_java除法怎样取小数部分「建议收藏」
3 ++ — ~ ! – + & * () sizeof new delete castname_cast 单目操作符 右
全栈程序员站长
2022/09/02
1.7K0
汇编语言的乘法指令(乘法指令和除法指令)
MUL和IMUL指令分别用于实现无符号数的乘法和有符号数的乘法运算。都只有一个源操作数,可以使寄存器或存储器,而且目标操作数隐含规定在累加器中。
全栈程序员站长
2022/07/31
3.3K0
python整数除法保留两位小数
在py应用中有许多拿结果中的多个整数进行运算,难免少不了除法(如单位换算等),但是整数进行运算后只会返回整数,一般结果基本需要精确到后两位,此时就可以使用以下两种方法进行解决:
py3study
2020/01/07
4.4K0
django 模板中使用 widthratio 标签实现 乘法、除法 运算
http://doc.codingdict.com/django/ref/templates/builtins.html#std:templatetag-widthratio(中文)
卓越笔记
2023/02/18
9140
java除法保留两位小数_JAVA除法保留小数点后两位的两种方法
c=(double)(Math.round(a*100/b)/100.0);//这样为保持2位
全栈程序员站长
2022/08/25
13.6K0
bigdecimal除法运算保留两位小数_bigdecimal保留两位小数显示00
问题: 将两个long类型的数相除后转换为BigDecimal类型并保留两位小数。
全栈程序员站长
2022/11/09
4.1K0
教孩子学习乘法和除法,我算是绞尽脑汁了
这是学习笔记的第 2416篇文章   说实话,数学不是我的强项,因为对我来说,数学是那种少有灵感的学科,我在这方面的学习只能靠最朴素的练习。孩子是一面明镜,在教孩子的过程中我时常能够发现自己曾经的影子,我发现孩子在学习上难以保持专注,同时不会刻意去抓重点,我有一个能够审视自我的习惯,我经常会反思自己哪里做得不够好,所以两者结合起来,我发现教孩子学数学这件事情好像可以再努力一下。   我观察到孩子学习的一些现象,有时候感觉挺无奈,其中的一个重要原因是如果学习效率不高其实会浪费很多时间,这些时间用来玩就好了,
jeanron100
2022/05/05
8550
教孩子学习乘法和除法,我算是绞尽脑汁了
不使用除法的“除法”
题目: 给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。
MickyInvQ
2021/03/02
1.5K0
不使用除法的“除法”
给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。
MickyInvQ
2021/02/09
1.4K0
欧几里得算法(辗转相除法),扩展欧几里得算法,乘法逆元,最小正整数解
欧几里得算法是用来求解两个不全为0的非负整数m和n的最大公约数的一个高效且简单的算法。该算法来自于欧几里得的《几何原本》。数学公式表达如下:
zy010101
2019/05/25
7K0
二进制乘法除法运算_二进制的补码怎么算
Binary numbers can be multiplied using two methods,
全栈程序员站长
2022/11/10
9650
二进制乘法除法运算_二进制的补码怎么算
订单系统除法精度缺失问题
在一个订单系统中,需要限制下单数量不能超过库存的百分比,比如一个商品库存是20吨,在配置单次不能大于库存的30%,解题思路是下单数/库存总数与配置做对比。但是除法运算可能会出现除不尽的情况,比如1/3= 0.3333333.....,对于除法需要保留小数点后的数字。当时我在计算的时候保留了两位小数,
用户10384376
2023/02/25
5590
订单系统除法精度缺失问题
python的常见矩阵除法_Python矩阵除法
我有一个关于按元素划分矩阵的问题,我的意思是我想要第一个矩阵的元素[I,j]除以第二个矩阵(Q)的元素[I,j]。在
全栈程序员站长
2022/07/02
3.2K0
BigDecimal 除法
divide(BigDecimal divisor, int scale, int roundingMode)
全栈程序员站长
2022/07/02
2.4K0
BigDecimal除法问题
BigDecimal做除法时,尽量使用divide(BigDecimal divisor, int scale, int roundingMode),这个方法
全栈程序员站长
2022/07/02
1.2K0
整数除法
给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 '*'、除号 '/' 以及求余符号 '%' 。
Johns
2022/09/28
2.8K0

相似问题

小数除法

12

乘法/除法问题

10

小数整数除法

34

wxMaxima:将除法视为乘法(将整体除法作为乘法因子)

110

左移小数除法

59
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文