新しいインターフェースにおいては、どのような数値タイプへ、又はからの自動変換も提供されているので、ユーザーは数値変数の外部データ型を知っている必要はありません。この特徴を使って、コードを外部データ型に依存しないようにして簡単にすることができます。 void* ポインタ の排除することによって、以前のインターフェースでは不可能であった、コンパイル時にタイプエラーを発見することを可能にしました。変数の外部データ型を扱うに際にプログラムを変更する必要が無いために、新しいインターフェースはプログラムをより強固にすることが出来ます。
外部数値型からの変換が必要な場合はライブラリによって扱われます。この自動変換機能と外部データ表記の内部データ型からの分離はNetCDF4版においてより重要になります。4版では、自然に対応する内部データ型が存在しない圧縮データ(例えば11ビット値の配列) 用の新しい外部データ型が用意される予定です。
ある数値型から他の型に変換する操作は、ターゲットの型が変換された値を表現できない場合にエラーがを引き起こします。(NetCDF-2においては、そのようなオーバーフローはXDR階層でのみ起こり得ました。)例えば、 float は外部では NC_DOUBLE (IEEE浮動小数点数)として格納されているデータをもつことが出来ないかもしれません。値の配列をアクセスする際には、表現し得る範囲を超えた値が一つ又はそれ以上ある場合には、 NC_ERANGE エラーが返されますが、他の値は正しく変換されます。
タイプ変換において、単に精度のロスが生じただけではエラーが返されないことに注意してください。そのため、例えばintに 二倍精度の値を読み込んだ場合には、その二倍精度の値の大きさがプラットフォーム上の ints で表現できる範囲を超えない限りエラーは生じません。 同様に、仮数部分に整数のビットを全て収めることの出来ない float に大きな整数を読み込み、精度が失われてもエラーは生じません。このような精度のロスを防ぐためには、アクセスする変数の外部データ型を確認し、それと互換性のある内部データ型を使用しましょう。
新しいインターフェースはテキスト列を表現する文字配列と小さい整数を表わす8ビットバイトの配列とを区別します。このインターフェースはテキスト列のための text 、 uchar 、 及び schar 、非符号バイト値と符号付バイト値の内部データ型をサポートします。
関数 _uchar と _schar は曖昧さを排除し、非符号付と符号付のバイトデータを療法サポートするためにNetCDF-3で導入されました。 NetCDF-2においては、外部 NC_BYTE 型が非符号付もしくは符号付の値のどちらを表現しているのかを決めるのはユーザーでした。NetCDF-3においては、 NC_BYTE はshort、int、 long、float、 又は doubleへの変換に際し NC_BYTE は符号付の値として扱います。(もちろん、内部データ型が符号付charの場合には変換は行なわれません。) 関数 _uchar では、 NC_BYTE をあたかも非符号付のように扱います。よって、 NC_BYTE と非符号付char間の変換においては NC_ERANGE エラーは発生しようがありません。