#include <iostream>
#include <cassert>
using namespace std;
void PrintMulNum(char *numA,int alen,char *numB,int blen)
{
if (NULL == numA || NULL == numB || alen <=0 || blen <=0)
{
return;
}
int *num1 = new int[alen-1];//减去小数点1位
assert(num1 != NULL);
int *num2 = new int[blen-1];
assert(num2!=NULL);
int *result = new int[(alen-1)*(blen-1)+1];
assert(result != NULL);
memset(result,0,((alen-1)*(blen-1)+1)*sizeof(int));
int i,j,pointCountA=0,pointCountB=0,posA,posB;
for (i=0,j=0; j < alen;j++)
{
if (numA[alen-1-j]!='.')
{
pointCountA++;
num1[i]=numA[alen-1-j]-'0';
cout << "---"<<i<<"---"<<num1[i]<<endl;
i++;
}
else
{
posA = pointCountA;//计算小数点位置
}
}
for (i=0,j=0; j < blen;j++)
{
if (numB[blen-1-j]!='.')
{
pointCountB++;
num2[i]=numB[blen-1-j]-'0';
cout << "---"<<i<<"---"<<num2[i]<<endl;
i++;
}
else
{
posB = pointCountB;
}
}
int point = posA+posB;//计算result中小数点位置
for (i=0; i < alen-1; ++i)
{
for (j=0;j<blen-1;++j)
{
result[i+j] +=num1[i]*num2[j];
cout << "---"<<i+j<<"---"<<result[i+j]<<endl;
}
}
for (i=0;i < (alen-1)*(blen-1);i++)
{
if (result[i] > 9)
{
result[i+1] += result[i]/10;
result[i] %=10;
}
cout << "---"<<i<<"---"<<result[i]<<endl;
}
bool flag = true;
for (i=(alen-1)*(blen-1);i>=0;--i)
{
if (result[i]==0&&flag)
{
continue;
}
else
{
if (i ==point)
{
cout <<result[i]<<".";
}
else
cout << result[i];
flag=false;
}
}
delete[] num1;
delete[] num2;
delete[] result;
return;
}
int main()
{
char *n="1.243";
char *m="3.241555";
PrintMulNum(n,strlen(n),m,strlen(m));
}相关推荐
【OpenCV】复杂场景下的高精度圆检测实战(附完整代码)
本文针对OpenCV霍夫圆检测在复杂场景下易失效的问题,提出了一套基于轮廓分析的高精度圆检测实战方案。通过图像预处理、轮廓发现及多轮几何筛选(面积、周长、椭圆拟合、多边形逼近),有效排除噪声和类圆干扰物,显著提升复杂场景下的检测鲁棒性,并附完整可调参的Python代码实现。
Go-基本数据类型转换详解(int系列、float系列、string等)
参数 T(v):变量v转为T类型 基本数据类型转换 原类型 目标类型 方法 备注 整型、浮点型 整型、浮点型 T(v) 大数转小数超范围,溢出;浮点型转整型,小数丢失;高精度转低精度,精度丢失 任何类型 string fmt.Sprintf() 推荐 bool strconv.FormatBool(bool) int64 strconv.FormatInt(int64) ..
UE4初学笔记_02_编辑器界面
不同版本可能不一样,这里是4.25 UE4编辑器主界面(也称为关卡编辑器)主要用于构建世界场景和关卡以及放置资源。 1.菜单栏 2.关卡编辑器(Level Editor)工具栏 3.“模式”(Modes)面板 4.“内容浏览器”(Content Browser)面板 5.“视口”(Viewport)面板 6.“世界大纲视图”(World Outliner)面板 7.“细节”(Details)面板 1.菜单栏 菜单栏包含“文件”(File) 、“编辑”(Edit) 、“窗口”(Win.
Go数据类型
支持更新…
英飞凌TC3xx的GTM模块到底有多强?从PWM生成到电机驱动,一篇讲透车载定时器核心
本文深入解析英飞凌TC3xx系列中的GTM模块在汽车电子领域的强大功能,从PWM生成到电机驱动的全链路设计。通过模块化架构和硬件级解决方案,GTM显著提升系统精度和响应速度,适用于电机控制、电源管理等复杂场景。文章结合实战经验,详细拆解GTM的技术实现和性能优势。
FFmpeg魔改指南:让RTMP协议完美兼容H265的三种方法(含SRS适配技巧)
本文详细介绍了三种让RTMP协议兼容H265编码的FFmpeg魔改方案,包括基于官方补丁的标准改造、Intel的SVT-HEVC集成方案以及金山云的自定义扩展方案。文章重点解析了各方案的实现原理与适配技巧,并提供了在SRS 6.0服务器上进行深度配置和性能调优的完整实战指南,帮助开发者解决H265推流至传统RTMP服务器的兼容性问题。
整数和高精确度小数相乘
BigDecimal 一、构造器描述 BigDecimal(int) 创建一个具有参数所指定整数值的对象。 BigDecimal(double) 创建一个具有参数所指定双精度值的对象。 BigDecimal(long) 创建一个具有参数所指定长整数值的对象。 BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。 二、方法...
【PVCodeNet】《Palm Vein Recognition Network Combining Transformer and CNN》
1]吴凯,沈文忠,贾丁丁,等.融合Transformer和CNN的手掌静脉识别网络[J].计算机工程与应用,2023,59(24):98-109.
js解决两数相加,相减,相除,相乘,小数精确度丢失
我这边只要是在vue项目中使用,如下代码 // 解决小数精度丢失 // 除法 function accDiv(arg1, arg2) { var t1 = 0, t2 = 0, r1, r2; try { t1 = arg1.toString().split(".")[1].length } catch (e) { } try { t2 = arg2.toString().split(".")[1].length } catch (e) { } // with(Math) { r1 = Numb
MediaCreationToolW11:Windows11系统升级与修复利器
在日常使用Windows11系统的过程中,我们可能会遇到一些棘手的问题,比如系统更新时出现异常导致无法成功更新,或者系统本身出现异常需要进行无损修复。此外,当我们的电脑尚未升级到Windows11,而我们又希望进行升级时,一款高效且可靠的工具就显得尤为重要。接下来,MediaCreationToolW11将开始下载Windows11的安装文件,并创建Windows11介质。在“选择你要执行的操作”界面中,选择“ISO文件”。此时,你可以使用你的账户登录系统,并开始使用全新的Windows11系统了。
Vue2 - 详细实现安装西瓜视频 xgplayer 插件详细配置及使用教程,利用西瓜视频播放器播放 mp4、flv、hls 格式视频文件及视频推流(直播或监控摄像头画面),支持移动端H5及PC网站!
vue2,nuxt2,西瓜视频,xgplayer,插件组件,xgplayer-hls,xgplayer-flv,xgplayer-mp4,播放视频点播和直播视频流,自定义播放器样式,截屏,监控视频,vue使用西瓜播放器播放flv、hls、mp4视频,截屏按钮,直播流,报错,黑屏,加载失败,苹果ios不兼容,重连,怎么改样式,很卡,详细教程,监控实时播放推流,倍速播放,在线flv在线推流地址,HLS播放,vue西瓜播放器,vue如何使用西瓜视频插件做直播推流回流,视频点播,flv在线视频流播放,截图功能,利用
js(7) js精确计算相加相减相乘,保存小数点后两位,并且js去掉小数点后多余的0
js去掉小数点后面多余的0 用parseFloat js去掉小数点后面多余的0 用toFixed (819*9).toFixed(2) //"7371.00" parseFloat((819*9).toFixed(2)) //7371 parseFloat((819*9.996).toFixed(2))) //8186.72 parseFloat(1.1000) //1.1 ...
手把手教你学GPU的KMD专栏--3.4 中断处理机制与优化
记住,中断处理是GPU与CPU通信的"桥梁",没有高效的中断处理,GPU的性能将无法充分发挥。KMD通过"快进快出"原则、事件标志机制、GPU本机围栏等技术,实现高效、低延迟的中断处理。:GPU本机围栏机制允许GPU在满足特定条件(如围栏值达到某个阈值)时才触发中断,而不是每次围栏更新都触发中断,从而显著减少CPU唤醒次数,降低功耗。正如Microsoft GPU架构师在2022年WinHEC大会上指出:"没有好的中断处理,再强大的GPU也会被系统延迟拖垮。:多个GPU设备共享中断,导致中断处理混乱。
js 实现两个小数的相乘、相除功能
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>jquery中的ajax</title> 6 <script type="text/javascript" src="js/jquery-1.7.1.min...
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
js如何返回输入两个数值的乘积_JavaScript : 两个数的精确乘法
工作中要处理两个数的乘法,网上搜索了没有找到满意的答案,然后根据网上提供的思路自己实现了一个,重点满足容错的要求,就是不会轻易报错。主要算法是记录小数点后位数的总长度,然后将两个数转变成整数后相乘,再根据小数点后位数的总长度将乘积转变成小数。代码如下:/*** 两个数的精确乘法* @param v1* @param v2** 对于不能处理的问题,此方法一律返回 0** @returns {numb...
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
精确乘幂
1. 算法思想精确乘幂的思想秉承于大数乘法,但其实质仍是大数的相乘。只不过,由于底数可以为小数,相比较于大数相乘,需要处理小数点的问题。但是我们可以将采用分离的思想,记录小数点所在的位数(从右往左数,且从0开始)并去除小数点,先将小数换为大数,求出大数的成绩,再填入小数点。2. 问题描述2.1 问题描述 对一个实数R(0.03. 问题要点在本题中,需要把握的要点有三点: 1)一个n位的整数和一个
两个小数相乘
中等 时间限制: 1000MS内存限制: 256MB分数:100OI排行榜得分:14(0.1*分数+2*难度)两个数字总长度相同,且小数点后的位数也相同,数字总长度不超过25。输入 2 个小数 m,n,求这两个小数的积并输出。输入有两行,第一行数字m,第二行数字n。1、题目采用大整数(高精度)方法解决。高精度运算第九讲(Level2)2、小数位上产生的0,正常输出。4464 两个小数相乘。
poj1001(大数据)
这个问题是要请你求出 Rn 的精确值。在这里R是一个实数(0.0 Input 每组测试资料一列,包含了R,n,R的位置为第1行到第6行,n的位置为第8行到第9行。 Output 输出 Rn 的精确值。前后方无作用的0不应该出现。 Sample input 95.123 12 0.4321 20 5.1234 15 6.7592 9
php 小数点 乘法,js小数点数字相乘、把小数点四舍五入保留两位小数
//小数点数字相乘functionaccMul(arg1,arg2){varm=0,s1=arg1.toString(),s2=arg2.toString();try{m+=s1.split(".")[1].length}catch(e){}try{m+=s2.split(".")[1].length}catch(e){}returnNumber(s1.replace(".",""))*Nu...
c++学习笔记(20)ACM基础之北大1001
1.先贴一下题目要求 Description Problems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experien
abs 不会整数 方法 溢出_[Java解惑]数值表达式
数值表达式1.奇偶判断2.小数精确计算3.int整数相乘溢出4.负的十六进制与八进制字面常量5.窄数字类型提升至宽类型时使用符号位扩展还是零扩展6.((byte)0x90 == 0x90)?7.三元表达式(?:)8.+=复合赋值问题9.i =++i;与i=i++;的区别10.Integer.MAX_VALUE+ ...
java double 乘以100_浅谈Java double 相乘的结果偏差小问题
看下面的一段代码的运行结果:public class TestDouble {public static void main(String[] args) {double d =538.8;System.out.println(d*100);}输出结果很意外的不是 53880 而是53879.99999999999解决方法一:538.8*100 用*10*10 替换,才能得到我们想要的结果538....
把String类型的小数点格式化为保留小数点后两位
public static void main(String[] args) { //第一种方法把String类型的小数保留后两位 String a="1.9801"; //把Sting类型转换为double类型 double d=Double.parseDouble(a); BigDecimal big=new BigDecimal(d); big=big.setScale(2, B...
js 子表数据input输入后自动合计,精确小数精度位数
1.发现一个很好用的函数 toFixede(n) 小数留几位小数位,当小于n时,自动补充0 一篇博客 https://hacpai.com/article/1515730174574 都是关于JS处理此类问题的 2.我自己的需求是 输入两个值,有可能是整数,有可能是不确定位数的小数,最终得到的值肯定是两值中最大精度的,如果都是整数,那么留一位小数,当然这个也可以不留,按各自需要。 比如说0的补充和最大值取数,东自己手写的,测试的几种方法是可以直接用函数来实现的,自己觉得那种好用用哪一种 3.
大数BigInteger精确数Decimal的运算操作
大数处理: 当我们要操作的数已经超过了int的范围,我可以用BigInteger和Bigimal来操作: 1、 实例化BigInteger big = new BigInteger(String num); package com.jtlyuan; import java.math.BigInteger; public class BigNumber { pu
201



被折叠的 条评论
为什么被折叠?



