c语言 l l next,nexttowardl

在头文件中定义float       nextafterf( float from, float to );(1)(since C99)

double      nextafter( double from, double to );(2)(since C99)

long double nextafterl( long double from, long double to );(3)(since C99)

float       nexttowardf( float from, long double to );(4)(since C99)

double      nexttoward( double from, long double to );(5)(since C99)

long double nexttowardl( long double from, long double to );(6)(since C99)

Defined in header

#define nextafter(from, to)(7)(since C99)

#define nexttoward(from, to)(8)(since C99)

1-3)首先,将两个参数都转换为函数的类型,然后返回下一个可表示值from的方向to。如果from等于to,to则返回。

4-6)首先,将第一个参数转换为函数的类型,然后返回下一个可表示值from的方向to。如果from等于to,to则返回,转换long double为函数的返回类型,但不会丢失范围或精度。

7)类型 - 通用宏:如果任何参数具有类型long double,nextafterl则被调用。否则,如果任何参数具有整数类型或具有类型double,nextafter则被调用。否则,nextafterf被调用。

8)类型 - 通用宏:如果参数from具有类型long double,nexttowardl则被调用。否则,如果from有整数类型或类型double,nexttoward则调用。否则,nexttowardf被调用。

参数

from, to-浮点值

返回值

如果没有错误发生,下一个可表示值from的方向to。返回。如果from等于to,则to返回,转换为函数的类型。

如果范围误差由于发生溢出,±HUGE_VAL,±HUGE_VALF,或±HUGE_VALL被返回(与相同的符号from)。

如果由于下溢而发生范围错误,则返回正确的结果。

错误处理

按照math_errhandling中的指定报告错误。

如果实现支持IEEE浮点运算(IEC 60559),

如果from是有限的,但预期的结果是无穷大,提高FE_INEXACT和FE_OVERFLOW

如果from不相等to,结果是低于正常或零,则引发FE_INEXACT和FE_UNDERFLOW

在任何情况下,返回值都与当前舍入模式无关

如果是from或者to是NaN,则返回NaN

笔记

POSIX指定溢出和下溢条件是范围错误(可能会设置错误)。

IEC 60559建议from每当返回from==to。这些函数会返回to,这会使零之间的行为保持一致:nextafter(-0.0, +0.0)返回+0.0并nextafter(+0.0, -0.0)返回–0.0。

#include #include #include #include 

int main(void){

float from1 = 0, to1 = nextafterf(from1, 1);    printf("The next representable float after %.2f is %.20g (%a)\n", from1, to1, to1);

float from2 = 1, to2 = nextafterf(from2, 2);    printf("The next representable float after %.2f is %.20f (%a)\n", from2, to2, to2);

double from3 = nextafter(0.1, 0), to3 = 0.1;    printf("The number 0.1 lies between two valid doubles:\n"           "    %.56f (%a)\nand %.55f  (%a)\n", from3, from3, to3, to3);

// difference between nextafter and nexttoward:

long double dir = nextafterl(from1, 1); // first subnormal long double

float x = nextafterf(from1, dir); // first converts dir to float, giving 0    printf("Using nextafter, next float after %.2f (%a) is %.20g (%a)\n",

from1, from1, x, x);

x = nexttowardf(from1, dir);    printf("Using nexttoward, next float after %.2f (%a) is %.20g (%a)\n",

from1, from1, x, x);

// special values    {

#pragma STDC FENV_ACCESS ON        feclearexcept(FE_ALL_EXCEPT);

double from4 = DBL_MAX, to4 = nextafter(from4, INFINITY);        printf("The next representable double after %.2g (%a) is %.23f (%a)\n",

from4, from4, to4, to4);        if(fetestexcept(FE_OVERFLOW)) puts("   raised FE_OVERFLOW");        if(fetestexcept(FE_INEXACT)) puts("   raised FE_INEXACT");    } // end FENV_ACCESS block

float from5 = 0.0, to5 = nextafter(from5, -0.0);    printf("nextafter(+0.0, -0.0) gives %.2g (%a)\n", to5, to5);}

输出:

The next representable float after 0.00 is 1.4012984643248170709e-45 (0x1p-149)The next representable float after 1.00 is 1.00000011920928955078 (0x1.000002p+0)The number 0.1 lies between two valid doubles:    0.09999999999999999167332731531132594682276248931884765625 (0x1.9999999999999p-4)and 0.1000000000000000055511151231257827021181583404541015625  (0x1.999999999999ap-4)Using nextafter, next float after 0.00 (0x0p+0) is 0 (0x0p+0)Using nexttoward, next float after 0.00 (0x0p+0) is 1.4012984643248170709e-45 (0x1p-149)The next representable double after 1.8e+308 (0x1.fffffffffffffp+1023) is inf (inf)

raised FE_OVERFLOW

raised FE_INEXACTnextafter(+0.0, -0.0) gives -0 (-0x0p+0)

参考

C11标准(ISO / IEC 9899:2011):7.12.11.3 nextafter函数(p:256)

7.12.11.4 nexttoward函数(p:257)

7.25类型通用数学(p:373-375)

F.10.8.3 nextafter函数(p:529)

F.10.8.4 nexttoward函数(p:529)

C99标准(ISO / IEC 9899:1999):7.12.11.3 nextafter函数(p:237)

7.12.11.4 nexttoward函数(p:238)

7.22类型通用数学(p:335-337)

F.9.8.3 nextafter函数(p:466)

F.9.8.4 nexttoward函数(p:466)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c 语言 readline,如何用C实现一个readLine()函数- 该函数每次读入文本文件的一行并打印到屏幕...

如何用C实现一个readLine()函数- 该函数每次读入文本文件的一行并打印到屏幕(2012-04-13 00:23:41)标签:打印文本文件如何杂谈如何用C实现一个readLine()函数? 该函数每次读入文本文件的一行并打印到屏幕以前看到过这方面的讨论http://bbs.chinaunix.net/viewthrea…

STC单片机C语言中的数据类型,stc单片机c语言程序设计 第9章 stc单片机c语言数据类型.pdf...

STC单片 机C语言变量和数据类型主讲:何宾Email :hebinmail.buct.edu.cn2016.03C语言中的常量和变量对于基本数据类型,按其值是否可变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,其值可变的量…

c4droid语言游戏,c4droid手机编程软件下载

c4droid可以说是手机端最好的编程软件,没有之一,软件可以帮助大家在手机上进行编写C代码,让各位程序员们随时随地都能编程。操纵简单,功能强大。c4droid软件介绍c4droid是款Android设备上的C/C程序编译器,默认以tcc(tiny c compil…

c语言图像函数怎么用,请教 怎么才能用C输出一个函数的图像?大侠 帮帮忙啊...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼发一下我当年的练习程序#include#include#include#includedouble exp(double x){double l,m;unsigned int n;l1; m1; n0;do {n;mx*m/n;llm; }while ((-1.0E-6<m)&&(m<1.0E-6));return l; }main(){int graphmode, gra…

创业冲突的五种解决方法是_不会说话,不懂处理人际冲突怎么办?《沟通的艺术》5步教会你...

关注“夏娃蓝空间”&#xff0c;陪你成长为更好的自己。想要良好地解决冲突&#xff0c;一定要有“这是我们两个人共同的事”的态度。今年夏天最热门的电视剧非《三十而已》莫属了&#xff0c;而撑起了这部剧的流量的广大观众&#xff0c;基本都是集中在逐步靠近中青年阶段的90…

android gsensor 坐标,MTK Android G sensor 原理,配置,调试

原理图&#xff1a;g_sensor的驱动目录在mediatek/custom/common/kernel/accelerometer下。一、g_sensor 的移植步骤1、在ProjectConfig.mk中配置相关的g_sensor例如 CUSTOM_KERNEL_ACCELEROMETER kxtf92、在mediatek/custom/common/kernel/accelerometer目录中添加 g_sensor的…

网贷大数据什么时候会好_如果人类把地球钻穿了,会发生什么?大数据分析告诉你多可怕...

很多科研人员在做实验的时候&#xff0c;少不了被旁人嘲笑或者蔑视的情况&#xff0c;因为常人往往是无法理解他们的想法的。例如曾经就有科研人员想要对地球进行钻探&#xff0c;看看能够在地表上钻多深&#xff0c;是否能够将地球给钻穿了。很多人都会认为这种做法没有意义而…

android h5 有广告,那些H5在Android上显示的丧心病狂的坑

首先得强调一下&#xff0c;H5和移动设备的交互遇到的问题真的是各种丧心病狂&#xff01;&#xff01;但是本主依然还是耐着极大的兴致(无奈)的做了下去。H5页面在Android或者IOS上运行出现问题(这里的运行指的是h5的页面运行在App里的webview里)&#xff0c;测试人员或者上级…

python非贪婪匹配_Python中关于正则表达式非贪婪以及多行匹配功能详解

这篇文章主要介绍了Python正则表达式非贪婪、多行匹配功能,结合实例形式分析了Python正则表达式中非贪婪及多行匹配功能的实现方法与相关注意事项,需要的朋友可以参考下本文实例讲述了Python正则表达式非贪婪、多行匹配功能。分享给大家供大家参考&#xff0c;具体如下&#xf…

小米9android q测试版,基于Android Q的MIUI来了 小米9尝鲜

01基于Android Q的MIUI来了中关村在线消息&#xff1a;谷歌在今年五月份发布了最新的Android Q系统&#xff0c;虽然很多国产手机还没有升级到Android P&#xff0c;但是还是有不少厂家开始对旗下的手机升级到最新的Android Q系统&#xff0c;根据小米最新的官方的消息&#xf…

ios传值给js_WKWebView JS与OC间相互传值调用

写在前面本文将介绍如何使用WKWebView进行JS与OC、OC与JS间的传值和方法调用。前置条件1、导入WebKit.framework2、声明WKWebViewJS调用OC原生方法1、前端在js文件中实现这里要注意messageHandlers后面跟着的deviceInfo要与原生的定义的一致。2、iOS 实现WKScriptMessageHandle…

android layerlist bitmap,android shape类似的 另一个 高端用法:layer-list

android shape类似的 另一个 高端用法&#xff1a;layer-list&#xff1a;简介&#xff1a;将多个图片或上面两种效果按照顺序层叠起来” 《?xml version"1.0" encoding"utf-8"?>《layer-listxmlns:android"http://schemas.android.com/apk/res/…

跨域会报40几_总结一下跨域的几种情况

在网站开发中&#xff0c;经常会遇到跨域问题&#xff0c;下面总结一下集中常见的跨域问题。1. 不同域名属于跨域&#xff0c;如&#xff1a;www.a.com 和www.b.com&#xff0c;另外www.a.com 和www.a.com.cn也属于不同域名。2. 主域名和子域名(二级域名、三级域名等)跨域&…

android将拍摄的图片存入sd卡中,Android将图片保存至SD卡上

首先判断SD卡是否插入-->public String getSDPath(){File SDdirnull;boolean sdCardExistEnvironment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);if(sdCardExist){SDdirEnvironment.getExternalStorageDirectory();}if(SDdir!null){return S…

nedc和epa续航里程什么意思_400公里已成续航新起点,纯电动车的实用性到底怎样...

对于购买纯电动汽车的用户来说&#xff0c;续航里程是非常重要的参考因素&#xff0c;毕竟如果续航里程太短&#xff0c;实用性将会大打折扣&#xff0c;跑个长途都心惊胆战的&#xff0c;生怕路上遇到堵车了、没电了、中途没有加油站之类的。就算是不考虑长途&#xff0c;市区…

android广播示例,android接受开机广播事件

【实例简介】【实例截图】【核心代码】package com.yin.servicetest;import com.yin.service.MyService;import android.app.ActivityManager;import android.app.ActivityManager.RunningServiceInfo;import android.content.BroadcastReceiver;import android.content.Contex…

java class类_关于创建java中的class类的对象的方法

1.由于Class类没有公共构造方法&#xff0c;所有创建Class的对象的方法有以下几种&#xff1a;①通过Class.forName()静态方法返回Class类的一个实例Class cls Class.forName("test.dog - 这个网站可出售。 - 最佳的test 来源和相关信息。");②通过类名.class来获取…

android remote shell,关于 Appium V1.7.2 新增的唯一安卓可执行 mobile 命令 shell 的疑问...

关于 mobile: shell 在更新日志中说明&#xff0c;是从 1.7.1 升级到 1.7.2 中 “Add --relaxed-security, and mobile: shell access to adb”&#xff0c;并搜索 github 中 appium 库&#xff0c;找到需要配置 desiredcapabilities 中 relaxedSecurityEnabled 为 true&#x…

linux 正则查找email_Hello Iris简易微博类App开发教程3-查找用户和用户登录

用户邮箱地址有效性验证在上一节中&#xff0c;我们编写了用于用户注册的代码。但是当时并没有为用户的Email添加有效性验证&#xff0c;导致Email被设置为任何字符串都能注册成功。所以在本节初&#xff0c;我们首先来为Email添加一个有效性验证。首先还是来编写测试数据&…

pyqt生成 android,PyQt on Android

问题Im working on PyQt now, and I have to create the application on Android, Ive seen the kivy library, but its too crude.Is there any way now to run an application on Android made on PyQt?回答1:Android does not support pyQt4. PyQt5 is however supported(r…